package com.yunke.entity.vo;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 评论视图对象
 * 
 * @author yunke
 * @since 1.0.0
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class YunkeCommentVo {

    /**
     * 评论ID
     */
    private Long id;

    /**
     * 评论内容
     */
    private String content;

    /**
     * 评论用户ID
     */
    private Long userId;

    /**
     * 评论用户昵称
     */
    private String userName;

    /**
     * 评论用户头像
     */
    private String userAvatar;

    /**
     * 被评论的内容ID（帖子ID、动态ID等）
     */
    private Long targetId;

    /**
     * 被评论的内容类型（post-帖子、moment-动态、activity-活动等）
     */
    private String targetType;

    /**
     * 父评论ID（回复评论时使用）
     */
    private Long parentId;

    /**
     * 被回复的用户ID
     */
    private Long replyToUserId;

    /**
     * 被回复的用户昵称
     */
    private String replyToUserName;

    /**
     * 点赞数
     */
    private Integer likeCount;

    /**
     * 回复数
     */
    private Integer replyCount;

    /**
     * 当前用户是否已点赞
     */
    private Boolean isLiked;

    /**
     * 评论时间
     */
    private LocalDateTime createTime;

    /**
     * 子评论列表（回复列表）
     */
    private List<YunkeCommentVo> replies;

    /**
     * 评论图片列表
     */
    private List<String> images;

    /**
     * 评论状态（0-正常，1-已删除，2-已屏蔽）
     */
    private Integer status;

    /**
     * IP地址
     */
    private String ipAddress;

    /**
     * 地理位置
     */
    private String location;
} 